function Fork(){
	this.binded=[];
	this._=undefined;
	this._condition=new Toggle();
	this._then=new It();	
	this._otherwise=new It();	
	var me=this;
	this._decide=function(){
		var c=me._condition;
		if (c.value()){
			me.unbind(me._otherwise);
			me.bind(me._then);
			} 
		else {
			me.unbind(me._then);
			me.bind(me._otherwise);
			}
		}
	this.condition=function(it){
		if(it instanceof It){
			this._condition.unbind();
			this._condition.bind(it);
			return this;
			}
		else {
			this._condition.value(it);
			return this;
			}
		}
	this.then=function(it){
		if(it instanceof It){
			this._then.unbind();
			this._then.bind(it);
			return this;
			}
		else {
			this._then.value(it);
			return this;
			}
		}
	this.otherwise=function(it){
		if(it instanceof It){
			this._otherwise.unbind();
			this._otherwise.bind(it);
			return this;
			}
		else {
			this._otherwise.value(it);
			return this;
			}
		}
	this._then.afterChange=this._decide;
	this._otherwise.afterChange=this._decide;
	this._condition.afterChange=this._decide;
	}
Fork.prototype=new It();